1. Technical Field
Embodiments generally relate to input/output (IO) interfaces. More particularly, embodiments relate to the use of software to emulate scatter/gather operation in IO interfaces.
2. Discussion
Computing systems may include one or more IO host interfaces, wherein the host interfaces can provide connectivity to peripheral devices such as displays. Moreover, IO applications on computing systems can use virtual memory blocks to transmit and receive data through host interfaces. For example, a “scatter/gather” list may map the virtual memory blocks to physical memory blocks, wherein data is scattered into the physical memory blocks specified in the list and gathered by the host interface from the physical memory blocks for transmission. Conventional host interfaces may therefore provide hardware support for logical addressing, transport reliability, and scatter/gather operation optimization.
If the host interface does not support scatter/gather lists, however, a buffering scheme might be deployed in which software copies the data from the physical memory blocks to intermediate buffers in order to support these functions (e.g., achieve data packet payloads of a particular size). The data copying operations of such a buffering scheme can have a negative impact on IO performance.